﻿
namespace SaveTheQueen.Utils.Colision
{
    /// <summary>
    /// Base class for accelerators. Accelertors selects sprites to check for colision, reducing
    /// the number of pairwise tests.
    /// </summary>
    public abstract class BaseAccelerator
    {
        /// <summary>
        /// Start the acceleration process.
        /// </summary>
        /// <param name="source">List of sprites to combine in pairs for colision.</param>
        public virtual void Start()
        {
        }

        /// <summary>
        /// Creates a new Pair of sprites to check for colision.
        /// </summary>
        /// <param name="receiver"></param>
        public abstract void NextPair(ColisionManager receiver);

        /// <summary>
        /// End the acceleration process.
        /// </summary>
        public virtual void End()
        {
        }
    }
}
